// api/video.js - 视频相关接口
import request from './request.js';

/**
 * 视频相关API
 */
export const videoApi = {
  /**
   * 获取视频列表
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.limit - 每页数量
   * @param {string} params.category - 视频分类
   * @returns {Promise}
   */
  async getVideoList(params = {}) {
    try {
      // 实际项目中，这里应该调用后端API
      // const res = await request.get('/video/list', { params });
      // return res;
      
      // 模拟数据返回
      return {
        code: 1,
        msg: 'success',
        data: {
          list: [
            {
              id: '1',
              url: 'https://example.com/video1.mp4',
              title: '这是第一个视频标题',
              description: '这个视频非常精彩，不要错过！',
              author: '示例创作者',
              category: 'recommended',
              duration: 180,
              cover: 'https://example.com/cover1.jpg'
            },
            {
              id: '2',
              url: 'https://example.com/video2.mp4',
              title: '这是第二个视频标题',
              description: '精彩内容继续呈现',
              author: '示例创作者',
              category: 'entertainment',
              duration: 150,
              cover: 'https://example.com/cover2.jpg'
            },
            {
              id: '3',
              url: 'https://example.com/video3.mp4',
              title: '这是第三个视频标题',
              description: '每日精彩推荐',
              author: '示例创作者',
              category: 'education',
              duration: 240,
              cover: 'https://example.com/cover3.jpg'
            }
          ],
          total: 3,
          page: params.page || 1,
          limit: params.limit || 10
        }
      };
    } catch (error) {
      console.error('获取视频列表失败:', error);
      // 返回模拟数据，确保前端功能正常运行
      return {
        code: 1,
        msg: 'success',
        data: {
          list: [],
          total: 0,
          page: 1,
          limit: 10
        }
      };
    }
  },

  /**
   * 获取视频详情
   * @param {string} videoId - 视频ID
   * @returns {Promise}
   */
  async getVideoDetail(videoId) {
    try {
      // 实际项目中，这里应该调用后端API
      // const res = await request.get(`/video/detail/${videoId}`);
      // return res;
      
      // 模拟数据返回
      return {
        code: 1,
        msg: 'success',
        data: {
          id: videoId,
          url: `https://example.com/video${videoId}.mp4`,
          title: `这是视频ID为${videoId}的标题`,
          description: '这是视频的详细描述，包含了视频的主要内容介绍。',
          author: '示例创作者',
          category: 'recommended',
          duration: 180,
          cover: `https://example.com/cover${videoId}.jpg`,
          playCount: Math.floor(Math.random() * 100000),
          likeCount: Math.floor(Math.random() * 10000),
          commentCount: Math.floor(Math.random() * 1000)
        }
      };
    } catch (error) {
      console.error('获取视频详情失败:', error);
      throw error;
    }
  },

  /**
   * 上报视频观看记录
   * @param {Object} data - 观看记录数据
   * @param {string} data.videoId - 视频ID
   * @param {number} data.duration - 观看时长（秒）
   * @param {boolean} data.completed - 是否完整观看
   * @returns {Promise}
   */
  async reportVideoWatch(data) {
    try {
      // 实际项目中，这里应该调用后端API
      // const res = await request.post('/video/report-watch', data);
      // return res;
      
      // 模拟数据返回
      return {
        code: 1,
        msg: 'success',
        data: {
          pointsEarned: 5, // 观看视频获得的积分
          watchTime: data.duration
        }
      };
    } catch (error) {
      console.error('上报视频观看记录失败:', error);
      throw error;
    }
  },

  /**
   * 获取视频分类
   * @returns {Promise}
   */
  async getVideoCategories() {
    try {
      // 实际项目中，这里应该调用后端API
      // const res = await request.get('/video/categories');
      // return res;
      
      // 模拟数据返回
      return {
        code: 1,
        msg: 'success',
        data: [
          { id: 'recommended', name: '推荐', icon: 'star' },
          { id: 'entertainment', name: '娱乐', icon: 'happy' },
          { id: 'education', name: '教育', icon: 'book' },
          { id: 'sports', name: '体育', icon: 'football' },
          { id: 'lifestyle', name: '生活', icon: 'home' }
        ]
      };
    } catch (error) {
      console.error('获取视频分类失败:', error);
      throw error;
    }
  }
};

// 导出默认对象
export default videoApi;

// 导出单独的函数，方便使用
export const getVideoList = videoApi.getVideoList;
export const getVideoDetail = videoApi.getVideoDetail;
export const reportVideoWatch = videoApi.reportVideoWatch;
export const getVideoCategories = videoApi.getVideoCategories;